package com.avic.modules.mapping.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import javax.validation.constraints.Size;
import java.io.Serializable;

/**
 * @author zhangzikang 设备点位表
 * @date 2022-08-14
 */
@Data
@TableName("data_mapping")
public class DataMapping implements Serializable {

    // 点位id
    private String id;

    // 设备id
    private String equipId;

    // iot标签名
    private String tagName;

    // 点位名称
    private String dataName;

    // 数据类型
    private Integer dataType;

    // 点位地址(节点id)
    private String dataAddr;

    // 点位显示位置
    private Integer recordType;

    // 点位记录
    private Long recordCate;

    /** 逻辑删除 */
    private Integer isDel;

    // 上线
    private String goOnline;

    // 下线
    private String offline;

    // 是否显示上下线
    private Integer display;

    // 单位
    private String company;

    // 表名称
    private String tableName;

    // value值
    @TableField(exist = false)
    private String value;

    @TableField(exist = false)
    private Long categoryId;

    // 中文含义
    @TableField(exist = false)
    private String chineseMeaning;

    // 备注
    @Size(min = 0, max = 200, message = "备注长度不能大于255")
    private String remark;

    public void copy(DataMapping source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }

}
